import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    userInfo: {
      name: '李*盛',
      skill: '唱歌',
      friend: '*群',
      age: 17
    }
  },
  // 为了更好的调试 用  mutations来修改数据
  mutations: {
    // 参数1 固定的 state 就是仓库中的数据
    setName (state) {
      console.log(state)
      state.userInfo.name = '尚方宝剑'
    },
    // 传递参数
    setSkill (state, newSkill) {
      console.log(newSkill)
      // 修改数据
      state.userInfo.skill = newSkill
    },
    // 传递多个参数
    // 多个参数 只能通过对象或者数组的方式传递
    // 第一超过2个参数，多余的接收不到
    // setUserInfo (state, name, skill, friend) {
    setUserInfo (state, newInfo) {
      // console.log(name, skill, friend)
      // console.log(newInfo)
      state.userInfo = newInfo
    }
  },
  // 类似于vue中的计算属性
  getters: {
    // 参数1 是state
    // 需要返回东西出去
    isOld (state) {
      // console.log(state)
      if (state.userInfo.age >= 18) {
        return '恭喜你可以光明正大去网吧了'
      } else {
        return '只能偷偷摸摸去网吧'
      }
      // return '咩哈哈'
    }
  }
})
